iT邦幫忙

2022 iThome 鐵人賽

DAY 4
0
Mobile Development

在 Flutter 開發旅程的手札系列 第 4

Flutter Package - 製作多國語系

  • 分享至 

  • xImage
  •  

今天要介紹的多國語系,讓專案能夠支持多國的語言,並且讓app的語言是使用者的手機語言,使用的套件是intl_utils

在Terminal輸入下方程式碼,下載套件

flutter pub add intl_utils

在pubspec.yaml檔案中加入

flutter_intl:
  enabled: true

在Terminal輸入下方程式碼,生成多國語系檔案

flutter pub run intl_utils:generate

在pubspec.yaml檔案中加入
flutter_localizations 函式庫使得 MaterialApp
可以載入 localizationsDelegates 與 supportedLocales

flutter_localizations:
  sdk: flutter

https://ithelp.ithome.com.tw/upload/images/20220919/201526835kDJfwQhGu.png


在intl_en.arb檔案,加入下方程式碼

{
  "_locale": "en",
  "test": "test"
}

並且新增一個intl_zh.arb檔案,加入下方程式碼

{
  "_locale": "zh",
  "test": "測試"
}

https://ithelp.ithome.com.tw/upload/images/20220919/20152683mNxSB2qxfR.png
開啟main.dart,並找到MaterialApp,在裡面放入

localizationsDelegates: [
  ...GlobalMaterialLocalizations.delegates,
  ...GlobalCupertinoLocalizations.delegates,
  GlobalWidgetsLocalizations.delegate,
  S.delegate,
],
supportedLocales: [
  Locale("zh"),
  Locale("en"),
],

https://ithelp.ithome.com.tw/upload/images/20220919/20152683tEJh4wZP4D.png
設定完成後,就可以來輸入多國語系的文字囉
Text使用範例

Text(S.of(context).test),

驗證多國語系的效果,以iPhone為例,只需要在手機設定>一般>語言與地區更換語言,就能看到效果囉
https://ithelp.ithome.com.tw/upload/images/20220919/2015268351CMWZ63j8.png


成果示意圖
https://ithelp.ithome.com.tw/upload/images/20220919/20152683Ju0OuFa7S6.png


補充:如果多國語系需要放入變數
arb檔案設定

"test_2": "測試{item_length} 個項目"

Text使用範例

Text(S.of(context).test_2(item)),

上一篇
Flutter Widget - TextField 的應用介紹
下一篇
Flutter Package - 串接api(一)
系列文
在 Flutter 開發旅程的手札30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言